package com.lzw.breezeNovel.webApp.mapper.novel;

import com.lzw.breezeNovel.model.entity.pojo.novel.Book;
import com.lzw.breezeNovel.model.entity.query.SimplePage;
import com.lzw.breezeNovel.webApp.vo.novel.BookVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author 清风明月
 * @Package com.lzw.breezeNovel.webApp.mapper
 * @date 2025/3/2
 * @description 书籍mapper
 */
@Mapper
@SuppressWarnings("all")
public interface BookMapper {

    /**
     * 获取限时免费的小说
     * @return
     */
    List<Book> getFreeBooks();

    /**
     * 获取最新小说
     * @return
     */
    List<Book> getNewBooks();

    /**
     * 获取小说数量
     * @return
     */
    int selectCount();


    /**
     * 分页获取最新小说
     * @param simplePage
     * @return
     */
    List<Book> getNewBooksByPage(SimplePage simplePage);

    /**
     * 根据小说的类型获取数据
     * @param type
     * @return
     */
    List<Book> selectBookByType(String type);

    /**
     * 根据小说的类型获取数据数量
     * @param type
     * @return
     */
    int selectCountByType(String type);

    /**
     * 根据小说的类型分页获取数据
     * @param simplePage
     * @return
     */
    List<Book> getBooksByTypeByPage(SimplePage simplePage);

    /**
     * 根据小说id获取小说信息
     * @param bookId
     * @return
     */
    Book selectById(Long bookId);

    /**
     * 更新小说信息
     * @param book
     */
    void updateById(Book book);


    /**
     * 根据关键字搜索书籍
     * @param keyword
     * @param simplePage
     * @return
     */
    List<Book> selectBookByKeyword(String keyword, Integer start, Integer pageSize);

    /**
     * 获取所有书籍
     * @return
     */
    List<BookVo> selectgetAllBook();


}
